{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "# -*- coding: utf-8 -*-\n",
    "\"\"\"\n",
    "# @Author : FengLiang\n",
    "# @Time : 2020/4/12 1:52\n",
    "# @File : UserCF.py\n",
    "\"\"\"\n",
    "\n",
    "from operator import itemgetter\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "# data_file = 'ratings.csv'\n",
    "data_file = 'text3.csv'\n",
    "\n",
    "\n",
    "class UserCF:\n",
    "    def __init__(self):\n",
    "        self.frame = pd.read_csv(data_file, usecols=range(3))\n",
    "        self.frame.columns = ['user', 'item', 'rating']\n",
    "        self.data = {}\n",
    "        self.train = {}\n",
    "        self.test = {}\n",
    "        self.similarity = {}\n",
    "\n",
    "    @staticmethod\n",
    "    def _process_data(input_data):\n",
    "        \"\"\"\n",
    "        自定义数据处理函数\n",
    "        :param input_data: DataFrame\n",
    "        :return: dict{user_id: {item_id: rating}}\n",
    "        \"\"\"\n",
    "        output_data = {}\n",
    "        for _, items in input_data.iterrows():\n",
    "            user = int(items['user'])\n",
    "            item = int(items['item'])\n",
    "            rating = float(items['rating'])\n",
    "            if user in output_data.keys():\n",
    "                currentRatings = output_data[user]\n",
    "            else:\n",
    "                currentRatings = {}\n",
    "            currentRatings[item] = rating\n",
    "            output_data[user] = currentRatings\n",
    "        return output_data\n",
    "\n",
    "    def load_data(self, train_size, normalize=True):\n",
    "        \"\"\"\n",
    "        划分训练集、测试集，并定义数据结构为：dict{userid: {movieId: rating}}\n",
    "        :param train_size:\n",
    "        :param normalize:\n",
    "        :return:\n",
    "        \"\"\"\n",
    "        print('loading data...')\n",
    "        if normalize is True:  # 利用pandas对整列进行归一化，评分在(0,1)之间\n",
    "            rating = self.frame['rating']\n",
    "            self.frame['rating'] = (rating - rating.min()) / (rating.max() - rating.min())\n",
    "\n",
    "        train_data = self.frame.sample(frac=train_size, random_state=10, axis=0)\n",
    "        test_data = self.frame[~self.frame.index.isin(train_data.index)]\n",
    "\n",
    "        self.data = self._process_data(self.frame)\n",
    "        self.train = self._process_data(train_data)\n",
    "        self.test = self._process_data(test_data)\n",
    "\n",
    "        print('loaded data finish...')\n",
    "\n",
    "    def users_similarity(self, normal=False):\n",
    "        \"\"\"\n",
    "        计算用户和用户之间的矩阵相似度\n",
    "        :return:\n",
    "        \"\"\"\n",
    "        users_matrix = {}\n",
    "        for user, items in self.train.items():\n",
    "            for item in items.keys():\n",
    "                users_matrix.setdefault(item, set())\n",
    "                users_matrix[item].add(user)\n",
    "        user_item_count = {}\n",
    "        user_count = {}\n",
    "        for item, users in users_matrix.items():\n",
    "            for i in users:\n",
    "                user_item_count.setdefault(i, 0)\n",
    "                user_item_count[i] += 1\n",
    "                for j in users:\n",
    "                    if i == j:\n",
    "                        continue\n",
    "                    user_count.setdefault(i, {})\n",
    "                    user_count[i].setdefault(j, 0)\n",
    "                    # user_count[i][j] += 1\n",
    "                    user_count[i][j] += 1 / np.math.log(1 + len(users) * 1.0)\n",
    "\n",
    "        if not normal:\n",
    "            for i, related_users in user_count.items():\n",
    "                self.similarity.setdefault(i, {})\n",
    "                for j, rating in related_users.items():\n",
    "                    # print(related_users)\n",
    "                    self.similarity[i][j] = rating / np.sqrt(\n",
    "                        user_item_count[i] * user_item_count[j] * 1.0)  # 余弦相似度\n",
    "        else:\n",
    "            self.similarity_max = {}\n",
    "            for i, related_users in user_count.items():\n",
    "                self.similarity.setdefault(i, {})\n",
    "                for j, rating in related_users.items():\n",
    "                    self.similarity_max.setdefault(j, 0)\n",
    "                    self.similarity[i][j] = rating / np.sqrt(\n",
    "                        user_item_count[i] * user_item_count[j] * 1.0)\n",
    "                    if self.similarity[i][j] > self.similarity_max[j]:\n",
    "                        self.similarity_max[j] = self.similarity[i][j]\n",
    "            for i, related_users in self.similarity.items():\n",
    "                for j, rating in related_users.items():\n",
    "                    self.similarity[i][j] = self.similarity[i][j] / self.similarity_max[j]\n",
    "\n",
    "    def predict(self, user, K, N=None):\n",
    "        \"\"\"\n",
    "        对输入的一个user进行推荐\n",
    "        :param K:\n",
    "        :param N:\n",
    "        :param user:\n",
    "        :return:\n",
    "        \"\"\"\n",
    "        recommendations = {}\n",
    "\n",
    "        if user not in list(self.train.keys()) or user not in list(self.similarity.keys()):  # 训练集中不存在用户返回空结果\n",
    "            return list()\n",
    "\n",
    "        interacted_items = self.train[user]\n",
    "        for sim_user, similarity_factor1 in sorted(self.similarity[user].items(), key=itemgetter(1), reverse=True)[:K]:\n",
    "            for related_item, similarity_factor2 in self.train[sim_user].items():\n",
    "                if related_item in interacted_items:\n",
    "                    continue\n",
    "                recommendations.setdefault(related_item, 0)\n",
    "                recommendations[related_item] += similarity_factor1 * similarity_factor2\n",
    "\n",
    "        result_list = [(item, rating) for item, rating in recommendations.items()]\n",
    "        result_list.sort(key=lambda x: x[1], reverse=True)\n",
    "        if N:\n",
    "            N = int(N)\n",
    "            return result_list[:N]\n",
    "        else:\n",
    "            return result_list\n",
    "\n",
    "    def validate(self, K=20, N=10):\n",
    "        \"\"\"\n",
    "        计算MAE、RMSE评估指标\n",
    "        :return:\n",
    "        \"\"\"\n",
    "        print('calculating MAE and RMSE...')\n",
    "        error_sum = 0.0\n",
    "        sqrError_sum = 0.0\n",
    "        setSum = 0\n",
    "        for user in self.test:\n",
    "            recommendation = self.predict(user, K, N)  # ->list\n",
    "            userRatings = self.test[user]  # dict\n",
    "            for each in recommendation:\n",
    "                item = each[0]\n",
    "                rating = each[1]\n",
    "                if item in userRatings:\n",
    "                    error_sum += abs(userRatings[item] - rating)\n",
    "                    sqrError_sum += (userRatings[item] - rating) ** 2\n",
    "                    setSum += 1\n",
    "\n",
    "        mae = error_sum / setSum\n",
    "        rmse = np.sqrt(sqrError_sum / setSum)\n",
    "        return mae, rmse\n",
    "\n",
    "    def evaluate(self, K=20, N=10):\n",
    "        \"\"\"\n",
    "        推荐topN结果评估，计算precision和recall\n",
    "        :return:\n",
    "        \"\"\"\n",
    "        print('calculating precision and recall...')\n",
    "        hit = 0\n",
    "        recall_sum = 0\n",
    "        precision_sum = 0\n",
    "        for user in self.test.keys():\n",
    "            real_items = self.test.get(user)\n",
    "            recommendation = self.predict(user, K, N)\n",
    "            rec_result = [(item, rating) for item, rating in recommendation]\n",
    "            pred_items = [p[0] for p in rec_result]\n",
    "            hit += len([h for h in pred_items if h in real_items])\n",
    "            recall_sum += len(real_items)\n",
    "            # precision_sum += len(pred_items)\n",
    "            precision_sum += N\n",
    "\n",
    "        # print(precision_sum, recall_sum)\n",
    "        precision = hit / (precision_sum * 1.0)\n",
    "        recall = hit / (recall_sum * 1.0)\n",
    "        return precision, recall\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 查找最佳K值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loading data...\n",
      "loaded data finish...\n",
      "K： 10\n",
      "calculating MAE and RMSE...\n",
      "0.459395550360581 0.5163359151855063\n",
      "calculating precision and recall...\n",
      "0.22188552188552188 0.10923255428476711\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 11\n",
      "calculating MAE and RMSE...\n",
      "0.44711454564801706 0.5061512347577591\n",
      "calculating precision and recall...\n",
      "0.2249158249158249 0.1107243494115697\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 12\n",
      "calculating MAE and RMSE...\n",
      "0.4363048885013098 0.49731821108320273\n",
      "calculating precision and recall...\n",
      "0.22828282828282828 0.11238189955246146\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 13\n",
      "calculating MAE and RMSE...\n",
      "0.42694354240431587 0.4894067967764287\n",
      "calculating precision and recall...\n",
      "0.23164983164983166 0.11403944969335322\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 14\n",
      "calculating MAE and RMSE...\n",
      "0.41851230131139616 0.4824851686553992\n",
      "calculating precision and recall...\n",
      "0.23333333333333334 0.1148682247637991\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 15\n",
      "calculating MAE and RMSE...\n",
      "0.411467689939419 0.47641939096935615\n",
      "calculating precision and recall...\n",
      "0.234006734006734 0.11519973479197745\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 16\n",
      "calculating MAE and RMSE...\n",
      "0.40452032902295526 0.4702671824725824\n",
      "calculating precision and recall...\n",
      "0.23872053872053872 0.11752030498922593\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 17\n",
      "calculating MAE and RMSE...\n",
      "0.3995891441974679 0.4659833263819897\n",
      "calculating precision and recall...\n",
      "0.24006734006734007 0.11818332504558263\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 18\n",
      "calculating MAE and RMSE...\n",
      "0.3943785487350395 0.4614973928670595\n",
      "calculating precision and recall...\n",
      "0.23434343434343435 0.11536548980606663\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 19\n",
      "calculating MAE and RMSE...\n",
      "0.39040343229591296 0.4577977592276151\n",
      "calculating precision and recall...\n",
      "0.23468013468013468 0.11553124482015581\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 20\n",
      "calculating MAE and RMSE...\n",
      "0.38656971572253374 0.4543800521121167\n",
      "calculating precision and recall...\n",
      "0.24107744107744108 0.11868059008785016\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 21\n",
      "calculating MAE and RMSE...\n",
      "0.38255906192346906 0.4509629747467183\n",
      "calculating precision and recall...\n",
      "0.24107744107744108 0.11868059008785016\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 22\n",
      "calculating MAE and RMSE...\n",
      "0.37941397970583424 0.4486402921727721\n",
      "calculating precision and recall...\n",
      "0.23973063973063974 0.11801757003149345\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 23\n",
      "calculating MAE and RMSE...\n",
      "0.3780068910663167 0.4476150661566856\n",
      "calculating precision and recall...\n",
      "0.23602693602693603 0.11619426487651252\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 24\n",
      "calculating MAE and RMSE...\n",
      "0.3766014391045442 0.4465168741771252\n",
      "calculating precision and recall...\n",
      "0.23737373737373738 0.11685728493286922\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 25\n",
      "calculating MAE and RMSE...\n",
      "0.3756408894817703 0.4455792384218783\n",
      "calculating precision and recall...\n",
      "0.2404040404040404 0.1183490800596718\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 26\n",
      "calculating MAE and RMSE...\n",
      "0.37528100884146565 0.44631119219351456\n",
      "calculating precision and recall...\n",
      "0.2420875420875421 0.11917785513011768\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 27\n",
      "calculating MAE and RMSE...\n",
      "0.3747145533561524 0.44597448195016076\n",
      "calculating precision and recall...\n",
      "0.24545454545454545 0.12083540527100944\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 28\n",
      "calculating MAE and RMSE...\n",
      "0.374737998631226 0.4466892803826765\n",
      "calculating precision and recall...\n",
      "0.24242424242424243 0.11934361014420686\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 29\n",
      "calculating MAE and RMSE...\n",
      "0.3748015963749134 0.44760532388844415\n",
      "calculating precision and recall...\n",
      "0.24175084175084174 0.11901210011602852\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 30\n",
      "calculating MAE and RMSE...\n",
      "0.37531193632311516 0.44895917260816814\n",
      "calculating precision and recall...\n",
      "0.24141414141414141 0.11884634510193934\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 31\n",
      "calculating MAE and RMSE...\n",
      "0.3763030976080429 0.45080927877023047\n",
      "calculating precision and recall...\n",
      "0.24343434343434345 0.11984087518647439\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 32\n",
      "calculating MAE and RMSE...\n",
      "0.3775522311581549 0.4530171330540724\n",
      "calculating precision and recall...\n",
      "0.24242424242424243 0.11934361014420686\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 33\n",
      "calculating MAE and RMSE...\n",
      "0.3792626004526152 0.4559058829131197\n",
      "calculating precision and recall...\n",
      "0.2441077441077441 0.12017238521465275\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 34\n",
      "calculating MAE and RMSE...\n",
      "0.38121256201384723 0.45862456767232007\n",
      "calculating precision and recall...\n",
      "0.24444444444444444 0.12033814022874192\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 35\n",
      "calculating MAE and RMSE...\n",
      "0.3831413123947027 0.46171660759929534\n",
      "calculating precision and recall...\n",
      "0.2447811447811448 0.1205038952428311\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 36\n",
      "calculating MAE and RMSE...\n",
      "0.38500390206139534 0.4648203159142068\n",
      "calculating precision and recall...\n",
      "0.24141414141414141 0.11884634510193934\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 37\n",
      "calculating MAE and RMSE...\n",
      "0.38704438196791824 0.4682969442032292\n",
      "calculating precision and recall...\n",
      "0.24377104377104378 0.12000663020056357\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 38\n",
      "calculating MAE and RMSE...\n",
      "0.3891286242898896 0.4716398524859552\n",
      "calculating precision and recall...\n",
      "0.2420875420875421 0.11917785513011768\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 39\n",
      "calculating MAE and RMSE...\n",
      "0.39102734735569294 0.47495872246849163\n",
      "calculating precision and recall...\n",
      "0.23939393939393938 0.11785181501740427\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 40\n",
      "calculating MAE and RMSE...\n",
      "0.3929474160905923 0.4783483067562337\n",
      "calculating precision and recall...\n",
      "0.2404040404040404 0.1183490800596718\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 41\n",
      "calculating MAE and RMSE...\n",
      "0.39467544103676444 0.48165326547515575\n",
      "calculating precision and recall...\n",
      "0.24141414141414141 0.11884634510193934\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 42\n",
      "calculating MAE and RMSE...\n",
      "0.3968178994392698 0.48494175188288496\n",
      "calculating precision and recall...\n",
      "0.23905723905723905 0.11768606000331511\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 43\n",
      "calculating MAE and RMSE...\n",
      "0.39835029986699555 0.4879469787714431\n",
      "calculating precision and recall...\n",
      "0.2420875420875421 0.11917785513011768\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 44\n",
      "calculating MAE and RMSE...\n",
      "0.4005150533530312 0.4917939538301596\n",
      "calculating precision and recall...\n",
      "0.2404040404040404 0.1183490800596718\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 45\n",
      "calculating MAE and RMSE...\n",
      "0.40282544373234114 0.4956567479556633\n",
      "calculating precision and recall...\n",
      "0.23905723905723905 0.11768606000331511\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 46\n",
      "calculating MAE and RMSE...\n",
      "0.40559300803741977 0.5003053932674782\n",
      "calculating precision and recall...\n",
      "0.2383838383838384 0.11735454997513675\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 47\n",
      "calculating MAE and RMSE...\n",
      "0.4078486498216148 0.5040337474369856\n",
      "calculating precision and recall...\n",
      "0.23905723905723905 0.11768606000331511\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 48\n",
      "calculating MAE and RMSE...\n",
      "0.41041712566018984 0.5083997390908922\n",
      "calculating precision and recall...\n",
      "0.23703703703703705 0.11669152991878004\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 49\n",
      "calculating MAE and RMSE...\n",
      "0.4131612326056811 0.5128589735354113\n",
      "calculating precision and recall...\n",
      "0.2377104377104377 0.1170230399469584\n",
      "loading data...\n",
      "loaded data finish...\n",
      "K： 50\n",
      "calculating MAE and RMSE...\n",
      "0.4155981532828884 0.5168038031448005\n",
      "calculating precision and recall...\n",
      "0.23905723905723905 0.11768606000331511\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 查找最佳K值\n",
    "usercf = UserCF()\n",
    "K_range = list(range(10, 51, 1))\n",
    "mae_rmse = []\n",
    "pre_rec = []\n",
    "for i in K_range:\n",
    "    usercf.load_data(train_size=0.8, normalize=True)\n",
    "    usercf.users_similarity(normal=False)\n",
    "\n",
    "    print('K：', i)\n",
    "\n",
    "    mae, rmse = usercf.validate(K=i)\n",
    "    print(mae, rmse)\n",
    "    mae_rmse.append((mae, rmse))\n",
    "\n",
    "    pre, rec = usercf.evaluate(K=i)\n",
    "    print(pre, rec)\n",
    "    pre_rec.append((pre, rec))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x432 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = K_range\n",
    "mae = [i[0] for i in mae_rmse]\n",
    "rmse = [i[1] for i in mae_rmse]\n",
    "pre = [i[0] for i in pre_rec]\n",
    "rec = [i[1] for i in pre_rec]\n",
    "\n",
    "plt.figure(figsize=(12, 6))\n",
    "plt.subplot(221)\n",
    "plt.plot(x, mae)\n",
    "plt.xlabel('K')\n",
    "plt.ylabel('MAE')\n",
    "\n",
    "plt.subplot(222)\n",
    "plt.plot(x, rmse)\n",
    "plt.xlabel('K')\n",
    "plt.ylabel('RMSE')\n",
    "\n",
    "plt.subplot(223)\n",
    "plt.plot(x, pre)\n",
    "plt.xlabel('K')\n",
    "plt.ylabel('precision')\n",
    "\n",
    "plt.subplot(224)\n",
    "plt.plot(x, rec)\n",
    "plt.xlabel('K')\n",
    "plt.ylabel('recall')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 取K值为26，查看top10的数据划分结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loading data...\n",
      "loaded data finish...\n",
      "训练集： 0.9\n",
      "calculating MAE and RMSE...\n",
      "0.492268913971179 0.5875851300407785\n",
      "calculating precision and recall...\n",
      "0.14840989399293286 0.13921113689095127\n",
      "loading data...\n",
      "loaded data finish...\n",
      "训练集： 0.8\n",
      "calculating MAE and RMSE...\n",
      "0.3350214210715629 0.41725418222657384\n",
      "calculating precision and recall...\n",
      "0.24242424242424243 0.11934361014420686\n",
      "loading data...\n",
      "loaded data finish...\n",
      "训练集： 0.7\n",
      "calculating MAE and RMSE...\n",
      "0.2705292461280023 0.33865239227821686\n",
      "calculating precision and recall...\n",
      "0.3053691275167785 0.1005524861878453\n",
      "loading data...\n",
      "loaded data finish...\n",
      "训练集： 0.6\n",
      "calculating MAE and RMSE...\n",
      "0.2650995359541448 0.325231821928963\n",
      "calculating precision and recall...\n",
      "0.3612040133779264 0.08950770760815514\n",
      "loading data...\n",
      "loaded data finish...\n",
      "训练集： 0.5\n",
      "calculating MAE and RMSE...\n",
      "0.3324532825469807 0.3880032821306284\n",
      "calculating precision and recall...\n",
      "0.3759197324414716 0.07452098388914673\n"
     ]
    }
   ],
   "source": [
    "usercf = UserCF()\n",
    "train_range = [0.9, 0.8, 0.7, 0.6, 0.5]\n",
    "mae_rmse = []\n",
    "pre_rec = []\n",
    "for i in train_range:\n",
    "    usercf.load_data(train_size=i, normalize=True)\n",
    "    usercf.users_similarity(normal=False)\n",
    "\n",
    "    print('训练集：', i)\n",
    "\n",
    "    mae, rmse = usercf.validate(K=26, N=10)\n",
    "    print(mae, rmse)\n",
    "    mae_rmse.append((mae, rmse))\n",
    "\n",
    "    pre, rec = usercf.evaluate(K=26, N=10)\n",
    "    print(pre, rec)\n",
    "    pre_rec.append((pre, rec))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEKCAYAAADjDHn2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl4VOX9/vH3JxsJIQlbWGSNLCKCiARQEdCvG6iAuIKKiCiFYqHSb6t+ba0/W23VuoBiVcQNpJSqrRsqapFNBMIiq0DYF2VfAgSSwPP7Yw46YGAmkMmZJPfruubKzJlzkpuTkDtnzjPPMeccIiIiJxPjdwAREYl+KgsREQlJZSEiIiGpLEREJCSVhYiIhKSyEBGRkFQWIiISkspCRERCUlmIiEhIcX4HKC7Vq1d3DRs29DuGiEipMnfu3O3OufRQ65WZsmjYsCFZWVl+xxARKVXMbF046+llKBERCUllISIiIaksREQkJJWFiIiEpLIQEZGQVBYiIhKSykJEREIqM++zOFVHjjie+PQ7GqVXoknNSjSpmUKlCuV+t4iIHKPc/1bcknOQ179eS17BkR+X1amcRJOalWhaM4UmNbyPNStRMaHc7y4RKafK/W+/2mlJLHu0C+t3HmDFlhxWbslhxZZ9rNiSw9fZO8g7/FOJ1K2S9GNxNK2RQtOaKTSuUYmkhFgf/wUiIpFX7ssCIDbGyKieTEb1ZK46p9aPywsOH2HdzgPHFMjKLfuYtnIb+YcdAGZQr0pFmtZMoWnNn45CGqVXIjFeJSIiZYPK4iTiYmNolB74xd+lxU/L8w8fYd2O/ccUyIotOXy1fCsFRwIlEmPQoFryMS9jNa2ZwpnpyVSIU4mISOmisjgF8bExNK6RQuMaKVzdsvaPy/MKjrB2x35WeEcigSOSHL78biuHvRKJjTEaVKvovYwVOKHetGYKGdWTSYjT4DQRiU4qi2KUEBfjvRyVcszyQwWHWbN9/zEFsmJLDpOW/oDXIcTFGA2rJwcKxDsf0rRmJRpWTyY+ViUiIv5SWZSACnGxNKuVSrNaqccsP5h/mNXb9rNya86PRyNLN+/lk8U/4LwSiY8NnE9pUjPlmKORhtUqEqcSEZESorLwUWJ8LM3PSKX5GT8vkeyt+7wSCRyNLNq4h4mLvv+xRBJiYzgz/WiJHH05qxINqiUTG2M+/GtEpCxTWUShxPhYWtRJo0WdtGOWH8grYNVW75zI1sCJ9fnrd/Hht5t/XCchLnBSvulx7xOpV7WiSkRETpnKohSpmBBHy7pptKx7bInsP1RA9lZvZNbWfSz/IYc5a3by/oKfSiQx/miJHPs+kbpVkohRiYhICCqLMiC5Qhyt6lWmVb3KxyzPOZjPyq37jnmfyMxVO/j3/E0/rpMUH0vjGpV+HNp79AR7ncoqERH5icqiDEtJjOf8+lU4v36VY5bvyc0ne+uxbzScvnI77837qUSSEwIlcnR019EyqZ2WiJlKRKS8UVmUQ2lJ8bRpUJU2Daoes3zPgXxWeCOzjr7RcPLybfxr7sYf10mpEEfjmpXo1bYeN2fWU3GIlBPmjg6vKeUyMzNdVlaW3zHKpF3787yT6oGXtOau28WSzXtpn1GVv1zfkjPTK/kdUUROkZnNdc5lhlxPZSFFdeSIY0LWBh6fuIyDBUcYelkTBnQ6U28eFCmFwi0L/e+WIouJMXq1q88Xv+nMFWfX5KnPltPt+enMX7/L72giEiEqCzllNVISGXnb+Yy6I5PdB/K5/u9f8/8+XML+QwV+RxORYqaykNN2RfOafD6sE30uaMAbX6/lymenMvm7rX7HEpFipLKQYpGSGM+jPVrwzsALqZgQS7835vCrf8xn+75DfkcTkWIQ0bIwsy5mttzMss3sgUKeH2hmi8xsgZlNN7Pm3vKGZpbrLV9gZi9FMqcUnzYNqvLxkI7cd3lTPlv8A5c9PYUJWRsoKwMpRMqriI2GMrNYYAVwBbARmAP0ds4tDVon1Tm317vfHfilc66LmTUEPnLOtfjZJz4BjYaKPtlbc3jwvUXMWbuLDo2r8XjPljSolux3LBEJEg2jodoB2c651c65PGA80CN4haNF4UkG9OdnGdK4Rgr/HHAhj/VswcINe7jy2an8/atV5Add11xESodIlkUdYEPQ443esmOY2WAzWwU8CQwJeirDzOab2RQz6xjBnBJBMTHGbe0b8PmwzlxyVjpPfPodPV6YwaKNe/yOJiJFEMmyKGweiJ8dOTjnRjrnGgH3A7/3Fn8P1HfOtQaGAePMLPX4bc1sgJllmVnWtm3bijG6FLdaaYm83CeTl25vw/Z9h+gxcjp//mgpB/I0zFakNIhkWWwE6gU9rgtsPsG6EHiZ6joA59wh59wO7/5cYBXQ9PgNnHOvOOcynXOZ6enpxRZcIqdLi1p8PqwzvdrV59Xpa7jy2alMWaGiF4l2kSyLOUATM8swswSgF/BB8Apm1iTo4TXASm95uneCHDM7E2gCrI5gVilBaUnxPN6zJRN+cSEV4mLo+9ps7vvnAnZomK1I1IpYWTjnCoB7gc+AZcAE59wSM3vUG/kEcK+ZLTGzBQReburrLe8ELDSzb4F3gIHOuZ2Ryir+aJdRlYlDOzLksiZ8tHAzlz8zhffmbdQwW5EopIkEJSqs2JLDA+8uZN763XRsUp3He7akXtWKfscSKfOiYeisSNia1kzhnYEX8WiPc5i/fjdXPjuVUVNXU6BhtiJRQWUhUSMmxrjjwoZ8PqwTHRpX47GJy+j54tcs3qRhtiJ+U1lI1KmdlsSoOzIZeev5fL/nID1GzuAvnywjN++w39FEyi2VhUQlM+Oac2vz5bDO3NSmLi9PWc1Vz01l+srtfkcTKZdUFhLV0irG89cbzuUf91xAbIxx++hZ/GbCt+zan+d3NJFyRWUhpcKFjarxydCODL60Ee8v2MTlz0zh/QWbNMxWpISoLKTUSIyP5bdXNePDX11M3aoVGTp+Af3emMPGXQf8jiZS5qkspNQ5u3Yq7w26iD92a87sNTu58tmpjJ6+hsNHdJQhEikqCymVYmOMfh0ymHRfJ9pnVOVPHy3l+hdnsOz7vaE3FpEiU1lIqVa3SkVeu7MtI3q3ZuOuXLo9P50nP/2Og/kaZitSnFQWUuqZGd1bncEXwzpzXes6vPjVKro8N5WvV2mYrUhxUVlImVElOYG/3dSKt+9ujwNuHTWL+99ZyJ4D+X5HEyn1VBZS5nRoXJ1Ph3ZiYOdGvDNvI5c9M4WPFm7WMFuR06CykDIpKSGWB7o244N7O1A7LZF7x83n7jez2Lw71+9oIqWSykLKtHPOSOPfv7yI319zNl+v2sEVz0zhjRkaZitSVCoLKfPiYmO4u+OZTLqvE20aVuWRD5dy40tfs/yHHL+jiZQaKgspN+pVrcib/dry7C2tWLfjANc+P42nJy3XMFuRMKgspFwxM3q2rssXwzrT7dwzeP6/2Vw9YhqzVu/wO5pIVFNZSLlUNTmBZ245j7fuakf+4SPc8so3PPjeIvbkapitSGFUFlKudWqazme/7sQ9HTP455z1XPHMFD5d/L3fsUSijspCyr2KCXE8dE1z3h98MekpFRg4dh4D3srihz0H/Y4mEjVUFiKelnXTeH9wBx7s2owpK7ZxxTNTGPPNOo5omK2IykIkWFxsDL/o3IhJ93Xi3Hpp/OE/i7n55Zms3KJhtlK+qSxECtGgWjJj+7fnbze1InvbPq4eMY3nvljBoQINs5XySWUhcgJmxo1tAsNsu7aozXNfrOSaEdPJWrvT72giJU5lIRJC9UoVGNG7Na/3a0tu3mFufGkmv//PInIOapitlB8qC5EwXXpWDSbd14m7OmQwbtZ6rnhmKpOW/OB3LJESobIQKYLkCnE83K05//5lBypXjGfAmLkMGjuXrXs1zFbKNpWFyCloVa8yH/7qYn7X5Sy+/G4rlz0zhXGz1muYrZRZKguRUxQfG8MvL2nMZ7/uRIsz0vi/fy+i16hvWLVtn9/RRIqdykLkNGVUT2bcPe158oZz+e77vXQdPo3nv1xJXsERv6OJFBuVhUgxMDNubluPL37TmSua1+Tpz1fQ7fnpzFu/y+9oIsVCZSFSjGqkJDLy1vMZ3TeTvQfzueHvX/PIB0vYd6jA72gip0VlIRIBl51dk8+HdabvhQ15c+Zarh4+jfk6ypBSTGUhEiGVKsTxSPdzmPCLCzl8xHHjSzMZOTlb1/+WUimiZWFmXcxsuZllm9kDhTw/0MwWmdkCM5tuZs2DnnvQ2265mV0VyZwikdS2YVUmDu1I1xa1eOqz5dw66hs27871O5ZIkUSsLMwsFhgJdAWaA72Dy8AzzjnX0jl3HvAk8Iy3bXOgF3AO0AV40ft8IqVSWlI8z/duzd9uasWiTXvoOnyaLrIkpUokjyzaAdnOudXOuTxgPNAjeAXn3N6gh8nA0ePzHsB459wh59waINv7fCKl1tGJCScO6UiDahUZOHYeD763kAN5Ovkt0S+SZVEH2BD0eKO37BhmNtjMVhE4shhSxG0HmFmWmWVt27at2IKLRFLD6sm8M/AiBl3SiPFzNnDt89NZvGmP37FETiqSZWGFLPvZmT3n3EjnXCPgfuD3Rdz2FedcpnMuMz09/bTCipSkhLgY7u/SjLf7t2f/oQJ6vjiDV6et1nQhErUiWRYbgXpBj+sCm0+y/njgulPcVqRUuqhxdT4d2olLz6rBnz9eRt/XZ7M1R5MSSvSJZFnMAZqYWYaZJRA4Yf1B8Apm1iTo4TXASu/+B0AvM6tgZhlAE2B2BLOK+KZKcgIv92nDYz1bMGftTro+N43/frfF71gix4hYWTjnCoB7gc+AZcAE59wSM3vUzLp7q91rZkvMbAEwDOjrbbsEmAAsBT4FBjvndD1LKbPMjNvaN+DDey+mRmoid72RxSMfLOFgvn7sJTqYc2XjNdLMzEyXlZXldwyR03Yw/zBPfrqc12asoVmtFIb3as1ZtVL8jiVllJnNdc5lhlpP7+AWiTKJ8bE83K05r/dry/Z9h+j+wnTGzFxLWfnDTkonlYVIlLr0rBp8MrQTF5xZjT+8v4R73spi5/48v2NJOaWyEIli6SkVeP3Otjx8bXOmrthOl+emMn3ldr9jSTmkshCJcjExxl0XZ/CfwR1ITYrn9tGz+MvEZbq4kpQolYVIKdH8jFQ+vPdibmtfn5enruaGv3/Nal3CVUqIykKkFElKiOWxni15uU8bNuw6wDUjpjNhzgad/JaIU1mIlEJXnVOLT4d24rx6lfnduwu5d9x89hzI9zuWlGFx4axkZhWAG4CGwds45x6NTCwRCaVWWiJj727PK1NX8/Sk5cxfv4vnerWmXUZVv6NJGRTukcX7BKYNLwD2B91ExEexMcagSxrx7qCLSIiLodcrM3lm0nIKDuvktxSvsI4sgLrOuS4RTSIip6xVvcp8NKQjj3ywhBH/zWZ69naG92pNvaoV/Y4mZUS4RxZfm1nLiCYRkdNSqUIcf7upFSN6t2bl1n10HT6N9xds8juWlBHhlsXFwFzvetgLvetmL4xkMBE5Nd1bncHEIR1pViuFoeMXMOyfC8g5qJPfcnrCfRmqa0RTiEixqle1IuMHXMALk7MZ8eVKstbtYniv82hdv4rf0aSUCuvIwjm3DqgMdPNulb1lIhKl4mJj+PXlTZnwiws5fMRx40szGTk5m8O6Gp+cgrDKwsyGAm8DNbzbWDP7VSSDiUjxyGxYlYlDO3J1y9o89dlybh31DZt35/odS0qZsK5n4Z2fuNA5t997nAzMdM6dG+F8YdP1LEROzjnHe/M28fD7i4mLjeGv17eka8vafscSnxX39SwMCL5k12FvmYiUEmbGDW3q8vGQjjSoVpFBb8/jwfcWciCvwO9oUgqEWxavA7PM7BEzewT4BhgdsVQiEjENqyfzzsCLGHRJI8bP2cC1z09n8aY9fseSKBfuCe5ngH7ATmAX0M8591wkg4lI5CTExXB/l2a83b89+w8V0PPFGbw6bTVHdPJbTuCkZWFmqd7HqsBaYCwwBljnLRORUuyixtX5dGgnLj2rBn/+eBl9X5/N1r0H/Y4lUSjUkcU47+NcICvodvSxiJRyVZITeLlPGx7r2YI5a3fSZfg0vly2xe9YEmXCGg1VGmg0lMjpy96aw6/+sYBl3++l74UNePDqs0mMj/U7lkRQsY6GMrMO3nBZzOx2M3vGzOqfbkgRiS6Na6Tw719exF0dMnhz5jp6vDCD5T/k+B1LokC4o6H+Dhwws1bA74B1BM5diEgZkxgfy8PdmvN6v7bs2H+I7i9MZ8zMtboaXzkXblkUuMBPSg9guHNuOJASuVgi4rdLz6rBJ0M7ccGZ1fjD+0u4560sduw75Hcs8Um4ZZFjZg8CtwMfm1ksEB+5WCISDdJTKvD6nW15+NrmTF2xnS7DpzFt5Ta/Y4kPwi2LW4BDQH/n3A9AHeCpiKUSkagRE2PcdXEG/xncgbSkePqMns3jE5eRV6Cr8ZUnGg0lImHLzTvMnz9eytuz1tOiTiojerXmzPRKfseS01Aso6HMbLr3McfM9gbdcsxsb3GFFZHSISkhlsd6tuTlPm3YuCuXa0ZMZ8KcDTr5XQ6ctCyccxd7H1Occ6lBtxTnXGrJRBSRaHPVObX4dGgnzqtXmd+9u5DB4+ax54CuxleWhfs+iwvMLCXocSUzax+5WCIS7WqlJTL27vbc36UZk5ZsoevwqcxavcPvWBIhRXmfxb6gxwe8ZSJSjsXGGIMuacS7gy4iIS6G3qO+4elJy8k/rJPfZU3Y17NwQS9KOueOEP71u0WkjGtVrzIfD+nIDefX5fn/ZnPzyzNZv+OA37GkGIVbFqvNbIiZxXu3ocDqSAYTkdIluUIcT93UihG9W5O9dR9Xj5jG+ws2+R1Likm4ZTEQuAjYBGwE2gMDQm1kZl3MbLmZZZvZA4U8P8zMlprZQjP70swaBD132MwWeLcPwswpIj7r3uoMJg7pSLNaKQwdv4D7/rmAnIM6+V3aRex9Ft67vFcAVxAomDlAb+fc0qB1LgVmOecOmNkg4BLn3C3ec/ucc2EP4Nb7LESiS8HhI7wwOZsRX66kTpUkhvdqzfn1q/gdS45T3LPONvX+8l/sPT7XzH4fYrN2QLZzbrVzLg8YT2BuqR855yY7546+sPkNUDecPCIS/eJiY/j15U2Z8IsLOXIEbnppJi/8dyWHdTW+Uincl6FGAQ8C+QDOuYVArxDb1AE2BD3e6C07kf7AJ0GPE80sy8y+MbPrwswpIlEms2FVJg7tyNUta/O3SSvoPeobNu/O9TuWFFG4ZVHROTf7uGUFIbaxQpYV+ieFmd0OZHLsfFP1vUOjW4HnzKxRIdsN8Aola9s2TW4mEq3SkuIZ0es8nr6pFUs27aHr8Gl8suh7v2NJEYRbFtu9X9YOwMxuBEJ9pzcC9YIe1wU2H7+SmV0OPAR0d879OP+xc26z93E18BXQ+vhtnXOvOOcynXOZ6enpYf5TRMQPZsYNbery8ZCONKhWkUFvz+OBdxdyIC/U350SDcIti8HAy0AzM9sE/JrACKmTmQM0MbMMM0sg8LLVMaOazKy193m7O+e2Bi2vYmYVvPvVgQ7AUkSk1GtYPZl3Bl7EoEsa8c+sDVw7YjqLN+3xO5aEELIszCwGyHTOXQ6kA82ccxc759adbDvnXAFwL/AZsAyY4JxbYmaPmll3b7WngErAv44bIns2kGVm3wKTgb8Gj6ISkdItIS6G+7s04+3+7dmfV0DPF2cwaupqjujkd9QKa+ismU11znUqgTynTENnRUqnXfvzuP/dhUxauoWOTarz9E2tqJGa6HescqNYh84Cn5vZ/5pZPTOrevR2mhlFRKiSnMDLfdrwWM8WzFm7U1fji1LhHlmsoZCRTM65MyMR6lToyEKk9MvemsPgt+ezZsd+3uzXjgsbVfM7UplX3EcWzYGRwLfAAuB54JxTjyci8nONa6QwfsAFNKhakbvfnMPCjbv9jiSecMviTQInnUcQKIqzvWUiIsWqSnICY/q3p0pyAn1fm0321hy/Iwnhl8VZzrm7vek5JjvnBgBnRTKYiJRftdISGdu/PbExMdz+6mw27tJ0534Ltyzmm9kFRx94V8mbEZlIIiKB92OM6d+OA3kF3P7qLLblHAq9kURMuGXRHvjazNaa2VpgJtDZzBaZ2cKIpRORcu3s2qm83q8tW/Ye4o7XZrMnV1Od+yXcsugCZACdvVsGcDVwLdAtMtFERKBNg6q81KcN2Vtz6P/GHHLzDvsdqVwKqyycc+tOdot0SBEp3zo3TWd4r9bMW7+LgWPnklega3yXtHCPLEREfHV1y9o83rMlU1Zs474JC3RdjBIW53cAEZFw9WpXn70H83l84nekJsbzeM8WmBV2NQQpbioLESlVBnRqxO4D+bz41SrSkuJ5oGszvyOVCyoLESl1fnvVWezJzeelKYHCGHTJz66NJsVMZSEipY6Z8WiPFuw9WMATn35HWlI8t7av73esMk1lISKlUmyM8czNrdh3MJ+H/rOIlMQ4urU6w+9YZZZGQ4lIqRUfG8OLt7WhbYOqDJuwgK+Wbw29kZwSlYWIlGpJCbG8emcmTWqkMHDsXLLW7vQ7UpmkshCRUi81MZ63+rfjjLQk+r0xhyWbdU3v4qayEJEyoXqlCoy5uz2VKsTR97XZrNm+3+9IZYrKQkTKjDqVkxjTvz1HHNz+6iy+35Prd6QyQ2UhImVK4xqVeOuuduzJzef2V2exc3+e35HKBJWFiJQ5Leqk8WrfTDbuyqXva7PJOaipzU+XykJEyqQLzqzGi7edz7Lv93L3m1kczNfU5qdDZSEiZdZlZ9fk6ZtbMXvtTu4dN4/8w5ra/FSpLESkTOtxXh0e7X4OXyzbyu/eWcgRTW1+SjTdh4iUeX0ubMie3Hz+NmkFaUnx/LFbc01tXkQqCxEpFwZf2pjdB/J5dfoaUpPiGXZFU78jlSoqCxEpF8yMh645m70H8xnx5UrSkuLpf3GG37FKDZWFiJQbZsbjPVuyN7eAP320lNTEOG7KrOd3rFJBJ7hFpFyJi41heO/zuLhxde5/dyGfLfnB70ilgspCRMqdCnGxvNynDa3qVeZX4+YzI3u735GinspCRMql5ApxvH5nWzKqJ3PPW1nMX7/L70hRTWUhIuVW5YoJjOnfjuqVKtDvjTks/yHH70hRS2UhIuVajdRExvZvT0JsDH1Gz2LDzgN+R4pKES0LM+tiZsvNLNvMHijk+WFmttTMFprZl2bWIOi5vma20rv1jWROESnf6leryJj+7TlUcITbXp3F1r0H/Y4UdSJWFmYWC4wEugLNgd5m1vy41eYDmc65c4F3gCe9basCfwTaA+2AP5pZlUhlFRE5q1YKb/Rry/Z9h+gzeja7D2hq82CRPLJoB2Q751Y75/KA8UCP4BWcc5Odc0eP+b4B6nr3rwI+d87tdM7tAj4HukQwq4gIretXYdQdmazZvp9+b8xh/6ECvyNFjUiWRR1gQ9Djjd6yE+kPfHKK24qIFIsOjaszondrvt2wm4Fj53KoQFObQ2TLorBZugqd7tHMbgcygaeKsq2ZDTCzLDPL2rZt2ykHFREJ1qVFLZ644VymrdzOr8cvoEBTm0e0LDYCwe+jrwtsPn4lM7sceAjo7pw7VJRtnXOvOOcynXOZ6enpxRZcROSmzHr84drmfLL4B/7v34twrnxPbR7JspgDNDGzDDNLAHoBHwSvYGatgZcJFMXWoKc+A640syreie0rvWUiIiWm/8UZDPmfxkzI2sjjE5eV68KI2ESCzrkCM7uXwC/5WOA159wSM3sUyHLOfUDgZadKwL+8ueXXO+e6O+d2mtmfCBQOwKPOuZ2RyioiciL3XdGUPbn5jJq2hsoVExh8aWO/I/kiorPOOucmAhOPW/Zw0P3LT7Lta8BrkUsnIhKamfHHbuew92ABT322nNSkePpc0CD0hmWMpigXEQkhJsZ48sZzyTmYz8PvLyY1MY4e55WvAZqa7kNEJAzxsTG8cOv5tGtYld9M+Jb/frfF70glSmUhIhKmxPhYXu2bydm1Uxk0dh6zVu/wO1KJUVmIiBRBSmI8b/RrS90qSdz9ZhaLN+3xO1KJUFmIiBRRtUoVGNO/PalJ8dzx2myyt+7zO1LEqSxERE7BGZWTGNO/HTEGd4yexabduX5HiiiVhYjIKTozvRJv3tWOnEMF9Hl1Ftv3HQq9USmlshAROQ3nnJHGa3e2ZfOeXPq+Npu9B/P9jhQRKgsRkdPUtmFV/n57G5b/kMPdb2SRm1f2ZqpVWYiIFINLz6rBs7ecx5x1O/nl23PJL2Mz1aosRESKSbdWZ/DYdS2ZvHwbv5nwLYePlJ2JBzXdh4hIMbq1fX325ObzxKffkZoUx596tMCbKLVUU1mIiBSzQZc0YnduHi9PWU1aUjy/vaqZ35FOm8pCRCQCHujSjL25+YycvIq0pHgGdGrkd6TTorIQEYkAM+PP17Vk78ECHp/4HWlJ8dzStr7fsU6ZykJEJEJiY4xnbz6PfQcLePC9RaQkxnN1y9p+xzolGg0lIhJBCXEx/P328zm/fhWGjp/P1BXb/I50SlQWIiIRVjEhjtF3tqVxjRR+MWYuc9ft8jtSkaksRERKQFpSPG/d1Y6aqRXo9/psln2/1+9IRaKyEBEpIekpganNKybE0Wf0bNZu3+93pLCpLERESlC9qhUZe3c7Dh85wu2jZ/HDnoN+RwqLykJEpIQ1rpHCm3e1Y9f+PPqMnsWu/Xl+RwpJZSEi4oNz61ZmVN9M1u08wJ2vz2bfoQK/I52UykJExCcXNarOyFvPZ/HmvQx4K4uD+dE7tbnKQkTER1c0r8lTN57L16t2MOQf8ymI0qnNVRYiIj67/vy6PNKtOZOWbuH+dxdxJAqnNtd0HyIiUeDODhnsyS3g2S9WkJoUx8PXNo+qqc1VFiIiUWLIZY3ZnZvH6zPWUjkpgaGXN/E70o9UFiIiUcLM+MM1zdnrHWGkJcVxZ4cMv2MBKgsRkagSE2M8cUNLcg7m88iHS0lNiuf68+v6HUsnuEVEok1cbAwbi2/gAAAJBklEQVQjerfmokbV+O07C/l86Ra/I6ksRESiUWJ8LK/ckUmLOmkMHjePr1dt9zWPykJEJEpVqhDHG3e2pUHVitzzZhYLN+72LYvKQkQkilVJTmBM//ZUSU6g72uzWbklx5ccKgsRkShXKy2Rt+9uT1xsDH1Gz2bDzgMlniGiZWFmXcxsuZllm9kDhTzfyczmmVmBmd143HOHzWyBd/sgkjlFRKJdg2rJvHVXOw7kFdBn9Cy25pTs1OYRKwsziwVGAl2B5kBvM2t+3GrrgTuBcYV8ilzn3HnerXukcoqIlBZn107l9X7t2LL3EHeMns2e3PwS+9qRPLJoB2Q751Y75/KA8UCP4BWcc2udcwuB6Jw5S0QkyrRpUIVX7mjDqm37uOuNORzIK5mpzSNZFnWADUGPN3rLwpVoZllm9o2ZXVe80URESq+OTdIZ3qs189fvYuDYeeQVRP7v7UiWRWEzYBVlKsX6zrlM4FbgOTNr9LMvYDbAK5Ssbdu2nWpOEZFS5+qWtfnL9S2ZumIb9/1zAYcjPFNtJKf72AjUC3pcF9gc7sbOuc3ex9Vm9hXQGlh13DqvAK8AZGZmRt+cviIiEXRL2/rszS0g52A+MRGeoDaSZTEHaGJmGcAmoBeBo4SQzKwKcMA5d8jMqgMdgCcjllREpJS6p9OZJfJ1IvYylHOuALgX+AxYBkxwzi0xs0fNrDuAmbU1s43ATcDLZrbE2/xsIMvMvgUmA391zi2NVFYRETk5c65svHqTmZnpsrKy/I4hIlKqmNlc7/zwSekd3CIiEpLKQkREQlJZiIhISCoLEREJSWUhIiIhqSxERCSkMjN01sy2AetO41NUB/y9bmHhlKtolKtolKtoymKuBs659FArlZmyOF1mlhXOWOOSplxFo1xFo1xFU55z6WUoEREJSWUhIiIhqSx+8orfAU5AuYpGuYpGuYqm3ObSOQsREQlJRxYiIhJSmS8LM+tiZsvNLNvMHijk+TvNbJuZLfBudwc919fMVnq3vlGU63DQ8g9KMpe3zs1mttTMlpjZuKDlvu2vELl8219m9mzQ115hZruDnvPz5+tkuSK2v8LMVt/MJpvZfDNbaGZXBz33oLfdcjO7KhpymVlDM8sN2mcvlXCuBmb2pZfpKzOrG/Rc8f2MOefK7A2IJXB1vTOBBOBboPlx69wJvFDItlWB1d7HKt79Kn7n8p7b5+P+agLMP7ovgBpRsr8KzeX3/jpu/V8Br0XD/jpRrkjuryJ8L18BBnn3mwNrg+5/C1QAMrzPExsFuRoCi33cX/8C+nr3/wcYE4mfsbJ+ZNEOyHbOrXbO5QHjgR5hbnsV8LlzbqdzbhfwOdAlCnJFUji57gFGevsE59xWb7nf++tEuSKpqN/H3sA/vPt+768T5Yq0cLI5INW7n8ZPl2PuAYx3zh1yzq0Bsr3P53euSAonV3PgS+/+5KDni/VnrKyXRR1gQ9Djjd6y493gHcK9Y2ZHrxse7rYlnQsg0cyyzOwbM7uumDKFm6sp0NTMZnhfv0sRtvUjF/i7v4DASwUE/hr+b1G3LeFcELn9FW62R4DbLXAVzYkEjnzC3daPXAAZ3stTU8ysYzFlCjfXt8AN3v2eQIqZVQtz27CV9bIo7BLmxw//+hBo6Jw7F/gCeLMI2/qRC6C+C7xb81bgOTNrVIK54gi85HMJgb9IXzWzymFu60cu8Hd/HdULeMc5d/gUti2q08kFkdtf4WbrDbzhnKsLXA2MMbOYMLf1I9f3BPZZa2AYMM7MUike4eT6X6Czmc0HOgObgIIwtw1bWS+LjUDwX+R1Oe7Q0Tm3wzl3yHs4CmgT7rY+5cI5t9n7uBr4CmhdUrm8dd53zuV7LwUsJ/BL2tf9dZJcfu+vo3px7Es9fu+vE+WK5P4KN1t/YIKXYSaQSGDuI7/3WaG5vJfFdnjL5xI4x9C0pHI55zY75673yuohb9meMP9N4YvESZlouRH4a3M1gcPsoyeHzjlundpB93sC37ifTg6tIXBiqIp3v2oU5KoCVPDuVwdWcpKTlxHI1QV4M+jrbwCqRcH+OlEuX/eXt95ZwFq89zVFw8/XSXJFbH8V4Xv5CXCnd/9sAr/gDDiHY09wr6b4TnCfTq70ozkInIjeVMI/+9WBGO/+Y8CjkfgZK5YfgGi+EThcXEGg7R/ylj0KdPfu/wVY4n0TJgPNgra9i8BJtGygXzTkAi4CFnnLFwH9SziXAc8AS72v3ytK9lehufzeX97jR4C/FrKtb/vrRLkivb/C/F42B2Z4GRYAVwZt+5C33XKgazTkInC+4Oj/1XlAtxLOdSOBUl8BvIpX9sX9M6Z3cIuISEhl/ZyFiIgUA5WFiIiEpLIQEZGQVBYiIhKSykJEREJSWUi5Z2aVzeyXp7jtxKB3ip/K9vtCPH/K2USKk8pCBCoDhf5CNrPYk23onLvaObf7ZOucphNmEylJKgsR+CvQyLsWwVNmdol33YJxBN6Yhpn9x8zmetfKGHB0QzNba2bVvWsaLDOzUd46k8ws6fgvZGYZZjbTzOaY2Z+Cllfyrkkwz8wWmdnRmUOPz3ai9UQiSm/Kk3LPzBoCHznnWniPLwE+Blq4wDxTmFlV59xOrwDmAJ2dczvMbC2QCVQi8C7ZTOfcAjObAHzgnBt73Nf6gMDEfW+Z2WDgCedcJTOLAyo65/aaWXXgGwJzWzU4Lluh6zn9R5YI05GFSOFmHy0KzxAz+5bAL+d6eJMUHmeNc26Bd38ugYviHK8DP03cNyZouQGPm9lCArMM1wFqFrJ9uOuJFKs4vwOIRKn9R+94RxqXAxc65w6Y2VcEZhw93qGg+4eBn70M5SnsKOA2AhPStXHO5XtHLIV9jXDXEylWOrIQgRwg5STPpwG7vKJoBlxwGl9rBoFpwSHwiz/4a2z1CuBSAi8/FZbtROuJRJTKQso9F7gWwQwzW2xmTxWyyqdAnPfSz58IvBR1qoYCg81sDoFf/Ee9DWSaWRaBEvnuBNkKXU8k0nSCW0REQtKRhYiIhKSyEBGRkFQWIiISkspCRERCUlmIiEhIKgsREQlJZSEiIiGpLEREJKT/Dw13KsFfKnhsAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = train_range\n",
    "mae = [i[0] for i in mae_rmse]\n",
    "rmse = [i[1] for i in mae_rmse]\n",
    "pre = [i[0] for i in pre_rec]\n",
    "rec = [i[1] for i in pre_rec]\n",
    "\n",
    "plt.plot(x, mae)\n",
    "plt.xlabel('train data')\n",
    "plt.ylabel('MAE')\n",
    "plt.show()\n",
    "\n",
    "plt.plot(x, rmse)\n",
    "plt.xlabel('train data')\n",
    "plt.ylabel('RMSE')\n",
    "plt.show()\n",
    "\n",
    "plt.plot(x, pre)\n",
    "plt.xlabel('train data')\n",
    "plt.ylabel('precision')\n",
    "plt.show()\n",
    "\n",
    "plt.plot(x, rec)\n",
    "plt.xlabel('train data')\n",
    "plt.ylabel('recall')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>训练集大小</th>\n",
       "      <th>MAE</th>\n",
       "      <th>RMSE</th>\n",
       "      <th>precision</th>\n",
       "      <th>recall</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>90%</td>\n",
       "      <td>0.492269</td>\n",
       "      <td>0.587585</td>\n",
       "      <td>0.148410</td>\n",
       "      <td>0.139211</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>80%</td>\n",
       "      <td>0.335021</td>\n",
       "      <td>0.417254</td>\n",
       "      <td>0.242424</td>\n",
       "      <td>0.119344</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>70%</td>\n",
       "      <td>0.270529</td>\n",
       "      <td>0.338652</td>\n",
       "      <td>0.305369</td>\n",
       "      <td>0.100552</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60%</td>\n",
       "      <td>0.265100</td>\n",
       "      <td>0.325232</td>\n",
       "      <td>0.361204</td>\n",
       "      <td>0.089508</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>50%</td>\n",
       "      <td>0.332453</td>\n",
       "      <td>0.388003</td>\n",
       "      <td>0.375920</td>\n",
       "      <td>0.074521</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  训练集大小       MAE      RMSE  precision    recall\n",
       "0   90%  0.492269  0.587585   0.148410  0.139211\n",
       "1   80%  0.335021  0.417254   0.242424  0.119344\n",
       "2   70%  0.270529  0.338652   0.305369  0.100552\n",
       "3   60%  0.265100  0.325232   0.361204  0.089508\n",
       "4   50%  0.332453  0.388003   0.375920  0.074521"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d = {\n",
    "    '训练集大小': [format(x, '.0%') for x in train_range], \n",
    "    'MAE': [i[0] for i in mae_rmse], \n",
    "    'RMSE': [i[1] for i in mae_rmse], \n",
    "    'precision': [i[0] for i in pre_rec], \n",
    "    'recall': [i[1] for i in pre_rec]\n",
    "}\n",
    "\n",
    "pd.DataFrame(data=d)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 取训练集为0.6时的数据进行topN推荐结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loading data...\n",
      "loaded data finish...\n",
      "[(260, 0.9766867797309712), (1210, 0.9073278010828272), (480, 0.8015985878412583), (1265, 0.7780253922020008), (1198, 0.7696211650907091), (1214, 0.7659427031569739), (858, 0.7229360940783107), (589, 0.699256043954385), (318, 0.6846920109502905), (592, 0.669575226694089)]\n"
     ]
    }
   ],
   "source": [
    "usercf = UserCF()\n",
    "usercf.load_data(train_size=0.6, normalize=True)\n",
    "usercf.users_similarity(normal=False)\n",
    "res = usercf.predict(user=1, K=26, N=10)\n",
    "print(res)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>item_id</th>\n",
       "      <th>rating</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>260</td>\n",
       "      <td>0.976687</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1210</td>\n",
       "      <td>0.907328</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>480</td>\n",
       "      <td>0.801599</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1265</td>\n",
       "      <td>0.778025</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1198</td>\n",
       "      <td>0.769621</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1214</td>\n",
       "      <td>0.765943</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>858</td>\n",
       "      <td>0.722936</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>589</td>\n",
       "      <td>0.699256</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>318</td>\n",
       "      <td>0.684692</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>592</td>\n",
       "      <td>0.669575</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   item_id    rating\n",
       "0      260  0.976687\n",
       "1     1210  0.907328\n",
       "2      480  0.801599\n",
       "3     1265  0.778025\n",
       "4     1198  0.769621\n",
       "5     1214  0.765943\n",
       "6      858  0.722936\n",
       "7      589  0.699256\n",
       "8      318  0.684692\n",
       "9      592  0.669575"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.DataFrame(res, columns=['item_id', 'rating'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 归一化前"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loading data...\n",
      "loaded data finish...\n",
      "训练集： 0.9\n",
      "calculating MAE and RMSE...\n",
      "2.5073078296629685 2.994916512572891\n",
      "calculating precision and recall...\n",
      "0.14664310954063603 0.13755386145177328\n",
      "loading data...\n",
      "loaded data finish...\n",
      "训练集： 0.8\n",
      "calculating MAE and RMSE...\n",
      "1.6945468278226639 2.100709798512887\n",
      "calculating precision and recall...\n",
      "0.24343434343434345 0.11984087518647439\n",
      "loading data...\n",
      "loaded data finish...\n",
      "训练集： 0.7\n",
      "calculating MAE and RMSE...\n",
      "1.3418876521643188 1.6757796659922135\n",
      "calculating precision and recall...\n",
      "0.30671140939597313 0.10099447513812154\n",
      "loading data...\n",
      "loaded data finish...\n",
      "训练集： 0.6\n",
      "calculating MAE and RMSE...\n",
      "1.298886968754741 1.5988052715278673\n",
      "calculating precision and recall...\n",
      "0.3625418060200669 0.0898392176363335\n",
      "loading data...\n",
      "loaded data finish...\n",
      "训练集： 0.5\n",
      "calculating MAE and RMSE...\n",
      "1.6594024901614288 1.9302000099642287\n",
      "calculating precision and recall...\n",
      "0.374247491638796 0.07418948485049394\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEKCAYAAAD9xUlFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xd4VGX6//H3TRJCSagJRboUAREFQoe1V7Ct7oq9ro2iu/rdXXXXn6uurlssICwiIlZcCysIiIqLhSIYkB5676GHlvr8/pghxjENyJkzyXxe15WLk5nncD4cx3PPOeeeZ8w5h4iICEAlvwOIiEjkUFEQEZF8KgoiIpJPRUFERPKpKIiISD4VBRERyaeiICIi+VQUREQkn4qCiIjki/U7wPFKSkpyzZs39zuGiEi5Mm/evF3OueSSxpW7otC8eXNSU1P9jiEiUq6Y2YbSjNPlIxERyaeiICIi+VQUREQkn4qCiIjkU1EQEZF8KgoiIpJPRUFERPKpKIiIlAMvTlvJ/I17Pd9OufvwmohItPl+/R5enLYKgM5Na3u6LZ0piIhEsLw8x5OfLKNhzSrc84uWnm9PRUFEJIJ9OH8zi7fs54+XtqVq5RjPt6eiICISoQ5m5vCPz1bQqWktrjjzlLBsU0VBRCRCjZi+mvSMTB7v3x4zC8s2VRRERCLQpj2HGT1jHVd3akQnj28uF6SiICISgZ79NI0YM35/yWlh3a6KgohIhJmzdjdTFm/n3rNb0rBm1bBuW0VBRCSC5OY5npy0jFNqVuHuX5wa9u2rKIiIRJCP5m1m6dYD/CFMLaihVBRERCJExtFs/v7ZCjqHsQU1lKa5EBGJECO+WsOug5m8dmtK2FpQQ+lMQUQkAmzcfZjXvl3HLzs34swmtXzLoaIgIhIBnv00jZhKxu8vbutrDs+Kgpk1MbPpZpZmZkvN7IFixnY1s1wzu9arPCIikeq7tbv5dMl27j+nJQ1qVvE1i5f3FHKAh5xz880sEZhnZl8455YVHGRmMcBzwGceZhERiUi5wVlQG9Wqym98aEEN5dmZgnNum3NufnA5A0gDGhUydDDwEbDTqywiIpHqg9RNLNt2gD9e2pYqceFvQQ0VlnsKZtYc6ATMCXm8EXA1MDIcOUREIknG0Wz++fkKUprVpn/Hhn7HAcJQFMwsgcCZwIPOuQMhT78I/ME5l1vC33G3maWaWWp6erpXUUVEwurl6avZdTCLxy8P3yyoJfH0cwpmFkegILzjnBtfyJAU4L3gzkgCLjOzHOfcxwUHOedGAaMAUlJSnJeZRUTCYcPuQ7w+Yz3XdG5Mx8b+taCG8qwoWOBI/xqQ5px7vrAxzrkWBcaPBSaFFgQRkYromSlpxMaEfxbUknh5ptAbuBlYbGYLgo89CjQFcM7pPoKIRKVZa3bx2dIdPHxRG+rX8LcFNZRnRcE5NwMo9UUy59xtXmUREYkUuXmOpyal0ahWVe7q638Laih9ollEJIzeT91E2rYDPHJZZLSghlJREBEJkwNHs/nnZyvo2rw2/c6IjBbUUJolVUQkTIb/bzV7Dmcxtn+3iGlBDaUzBRGRMFi/6xBjZq7j2s6NOaNxTb/jFElFQUQkDJ6ZkkblmEr838WR1YIaSkVBRMRjs1bv4vNlO7j/3FbUi7AW1FAqCiIiHsrNczw5aRmNa1flzj4tSl7BZyoKIiIeeu/7jSzfnsGjl7WLyBbUUCoKIiIeOXA0m399vpJuzetwaYcGfscpFRUFERGPDPtyFXsPR9YsqCVRURAR8cC6XYcYO2s9v+rSmA6NIrcFNZSKgoiIB/46OY342BgejvAW1FAqCiIiZWzGql1MS9vBwHNbUS8xsltQQ6koiIiUoZzcPJ6atIwmdapye+/mfsc5bioKIiJl6L3vN7FiRwaPlZMW1FAqCiIiZWT/kWye/2Il3VvU4eLTy0cLaigVBRGRMjK0HLaghlJREBEpA2vTD/LGrPVcl9KE008pPy2ooVQURETKwF8np1ElLoaHLipfLaihVBRERE7SNyvT+XL5Tgad14rkxHi/45wUFQURkZOQk5vH05OX0bROtXLZghpKRUFE5CSMm7uRlTsO8uhl7YiPLX8tqKFUFERETtD+w4EW1J6n1uXi0+v7HadMqCiIiJygl75cxf4j2fy5f/ltQQ3lWVEwsyZmNt3M0sxsqZk9UMiYG81sUfBnlpmd6VUeEZGytHrnQd6cvZ7rujal/Sk1/I5TZmI9/LtzgIecc/PNLBGYZ2ZfOOeWFRizDjjbObfXzC4FRgHdPcwkIlImnpmSRtW4GB66qI3fUcqUZ2cKzrltzrn5weUMIA1oFDJmlnNub/DX74DGXuURESkrX69M53/LdzL4/FYkJZTvFtRQYbmnYGbNgU7AnGKG3Ql8Go48IiIn6tgsqM3qVuPWXs39jlPmvLx8BICZJQAfAQ865w4UMeZcAkWhTxHP3w3cDdC0aVOPkoqIlOydORtZvfMgo27uUiFaUEN5eqZgZnEECsI7zrnxRYzpCIwGrnTO7S5sjHNulHMuxTmXkpyc7F1gEZFi7DucxQvTVtKrZV0ubF8xWlBDedl9ZMBrQJpz7vkixjQFxgM3O+dWepVFRKQsvDhtFQcqWAtqKC8vH/UGbgYWm9mC4GOPAk0BnHMjgceBusCI4A7Occ6leJhJROSErN6ZwVvfbWBAt6a0a1hxWlBDeVYUnHMzgGJLqXPuLuAurzKIiJSVpyenUS0uhocurFgtqKH0iWYRkRJMX7GTr1akM+T81tStYC2ooVQURESKkZ2bx9OTltG8graghlJREBEpxjvfbWBN+iEe69eeyrEV/5BZ8f+FIiInaO+hLF6Ytoo+rZK4oF09v+OEhYqCiEgRXvpyFRlHs/lT/3YVtgU1lIqCiEghVu0ItKDe0L0pbRtU3BbUUCoKIiKFeHpyGtUqx/DbCyp2C2ooFQURkRDTl+/k65XpPBAFLaihVBRERArIzs3jqcnLODWpOrf0bO53nLBTURARKeCt2RtYm36Ix/q1i4oW1FDR9y8WESnC3kNZvDhtJX1bJ3Fe2+hoQQ2loiAiEvTCtJUczMyp0LOglkRFQUQEWLkjg3fmbOTG7s1oUz/R7zi+UVEQkajnnOOpScuoXjmG31bwWVBLoqIgIlFv+oqdfLtqFw9c0IY61Sv7HcdXKgoiEtWycvJ4elIapyZX55aezfyO4zsVBRGJam99t4G1uw7xp37tiIvRIVF7QESi1p5DWbw0bSW/aJPMuadFZwtqKBUFEYlaL3yxkkNZufy5X/TMgloSFQURiUortmfwzpwN3NS9Ka2juAU1lIqCiESdYy2oiVXieDDKZkEtiYqCiESdL9N2MmP1Lh68oDW1o7wFNZSKgohElaycPP46JY2WydW5qYdaUEOpKIhIVHlz9nrW7TrEn/q3VwtqITzbI2bWxMymm1mamS01swcKGWNmNtTMVpvZIjPr7FUeEZHdBzN56ctVnK0W1CLFevh35wAPOefmm1kiMM/MvnDOLSsw5lKgdfCnO/Dv4J8iImXu+S9Wcjgrlz/3b+d3lIjl2ZmCc26bc25+cDkDSAMahQy7EnjTBXwH1DKzhl5lEpHolbbtAOPmbuTmHs1oVU8tqEUJywU1M2sOdALmhDzVCNhU4PfN/LxwYGZ3m1mqmaWmp6d7FVNEKijnHE9PXkaNqnE8eEFrv+NENM+LgpklAB8BDzrnDoQ+Xcgq7mcPODfKOZfinEtJTk72IqaIVGBfLNvBzNW7+e0FbahVTS2oxfG0KJhZHIGC8I5zbnwhQzYDTQr83hjY6mUmEYkumTm5/HVKGq3qJXBD96Z+x4l4XnYfGfAakOace76IYROBW4JdSD2A/c65bV5lEpHo88as9WzYfZg/qwW1VLzsPuoN3AwsNrMFwcceBZoCOOdGAlOAy4DVwGHgdg/ziEiU2XUwk2Ffrubc05I5u40uPZeGZ0XBOTeDwu8ZFBzjgIFeZRCR6Pavz1dyJDuXx/q19ztKuaFzKRGpkJZtPcB/vt/IzT2b0apegt9xyo1ii4KZ1SjmOd2xEZGIdGwW1BpV43jwfM2CejxKOlP46tiCmX0Z8tzHZZ5GRKQMfL5sB7PX7uZ3F7ahZrU4v+OUKyUVhYL3BOoU85yISETIzMnlmSlptK6XwA3ddEHjeJVUFFwRy4X9LiLiu7Ezf2xBjVUL6nErqfuonpn9jsBZwbFlgr+rv0tEIkp6RibD/rea89vW4xdqQT0hJRWFV4HEQpYBRnuSSETkBD3/xQqOZufyaD/Ngnqiii0Kzrm/FPWcmXUt+zgiIidm6db9vPf9Ju7o3YKWyWpBPVHH9eE1M2sPDACuB/YDKV6EEhE5Hs45nvxkGbWqxjHkPM2CejJKLApm1oxAEbiewBfnNANSnHPrvY0mIlI6ny3dzpx1e3jqqg5qQT1JJX14bRaB+YnigGudc12ADBUEEYkUx2ZBPa1+Itd3bVLyClKskvq10gncXK7Pj91GakUVkYgxZsZ6Nu05wp/6t1MLahkodg86564EzgDmA38xs3VAbTPrFo5wIiLF2ZlxlOHTV3NBu3r0ba0W1LJQ4j0F59x+YAwwxszqA9cBL5pZE+ecztVExDf/+mwlmTmaBbUsHde5lnNuh3NuqHOuF9DHo0wiIiVasmU/78/bxK09m9MiqbrfcSqMYs8UzGxiCetfUYZZRERKxTnHk5OWUbtaZQafrxbUslTS5aOewCZgHDAHTYInIhFg6pLtzF23h6ev6kDNqmpBLUslFYUGwIUEPqNwAzAZGOecW+p1MBGRwhzNDrSgtm2QyAC1oJa5krqPcp1zU51ztwI9CHyX8ldmNjgs6UREQoyZuY7Ne49oFlSPlOYTzfFAPwJnC82BocB4b2OJiPzczgNHGf6/1VzYvj69WyX5HadCKulG8xtAB+BT4C/OuSVhSSUiUoh/fr6CrNw8Hr1Ms6B6paQzhZuBQ0AbYIhZ/n1mA5xzrsjvcBYRKUtLtuzng3mb+U3fU9WC6qGSps7WBTsR8d2xWVDrVKvMoPNa+R2nQvPsoG9mY8xsp5kVesnJzGqa2SdmttDMlprZ7V5lEZHybcri7cxdv4eHLjqNGlXUguolL88ExgKXFPP8QGCZc+5M4BzgX2ZW2cM8IlIOHc3O5ZlgC+p1akH1nGdFwTn3DbCnuCFAogVuVCQEx+Z4lUdEyqfXZqxjy74jPH55e2Iq6fOzXjuub14rYy8DE4GtBKbnvs45l+djHhGJMDsOBGZBvah9fXq1VAtqOPh5I/liYAFwCnAW8LKZFdrNZGZ3m1mqmaWmp6eHM6OI+Ogfn60gOzePx/qpBTVc/CwKtwPjXcBqYB3QtrCBzrlRzrkU51xKcrLmTBeJBos27+PDeZu5o3cLmtVVC2q4+FkUNgLnAwS/p+E0YK2PeUQkQhxrQU1KUAtquHl2T8HMxhHoKkoys83A/yPwXc8450YCTwFjzWwxgQ/D/cE5t8urPCJSfkxatI3UDXt59pdnkKgW1LDyrCg4564v4fmtwEVebV9Eyqej2bn87dPltGtYg1+nqAU13PSJZRGJKK9+szbQgtpfLah+UFEQkYix48BRRny1hktOb0DPlnX9jhOVVBREJGI8N3U5uXlOs6D6SEVBRCLCwk37GD9/C3f0aUHTutX8jhO1VBRExHfOOZ6ctIykhHgGntvS7zhRTUVBRHz3yaJtzNuwl/+7uI1aUH2moiAivjqSlcvfpqTRvmENru2iFlS/qSiIiK9e/XYtW/cf1SyoEUJFQUR8s33/Uf791Rou7dCAHqeqBTUSqCiIiG/+rhbUiKOiICK++GHjXsb/sIU7+7agSR21oEYKFQURCbuj2bn85ZNlJCfGM/BczYIaSfz85jURiUJr0w9y/zvzWb49g5cGnEVCvA5DkUT/NUQkbCYv2sYfPlpEbIzx+m1dObdtPb8jSQgVBRHxXGZOLs9MTuON2Rvo1LQWL9/QmUa1qvodSwqhoiAintq05zAD353Pos37ubNPC/5wSVsqx+p2ZqSKqqKQk5tHbIxejCLh8sWyHTz0/gIcMPKmLlzSoYHfkaQEUXOE/GHjXi564RsWb97vdxSRCi87N49np6TxmzdTaVq3GpMG91FBKCeipijEVDKOZudyzb9nMW7uRpxzfkcSqZC27T/CgFHf8co3a7mpR1M+vLcXzepW9zuWlFLUFIWOjWsxaUhfup9ah0fGL+b3Hy7iaHau37FEKpRvVqbTb+gM0rYd4KUBZ/H0VWdQJS7G71hyHKKmKADUqV6Zsbd3Y8j5rflg3mauHjGLDbsP+R1LpNzLzXM8//kKbn19LskJ8Uwc1Icrz2rkdyw5AVFVFCBwGel3F7bh9du6snXfEfoPm8G0ZTv8jiVSbu3MOMpNo+cw9H+ruaZzYz4e2JtW9RL8jiUnKOqKwjHntq3HpMF9aFqnGne9mco/PgtMzCUipTd7zW76DZ3BD5v28vdrO/LPX51J1cq6XFSeRW1RAGhSpxof3deLAV2bMHz6Gm4ZM4fdBzP9jiUS8fLyHMOnr+bG0d+RWCWWjwf25tcp+oKcisCzomBmY8xsp5ktKWbMOWa2wMyWmtnXXmUpTpW4GP52TUf+fk1Hvl+/l/7DZjB/414/ooiUC3sOZXH72O/5x2cr6NfxFCYO6kPbBjX8jiVlxMszhbHAJUU9aWa1gBHAFc6504FfeZilRL/u2oTx9/UiNsa47pXZvDl7vdpWRULM27CXfkO/Zfaa3Tx1VQeGakK7CsezouCc+wbYU8yQG4DxzrmNwfE7vcpSWh0a1WTSoL70bZ3M4xOW8tv/LOBwVo7fsUR855xj9Ldrue6V2cTGGB/d14ubezTDTF+fWdH4eU+hDVDbzL4ys3lmdouPWfLVrBbH6FtSePiiNkxYuJWrhs9kbfpBv2OJ+Gb/kWzueWseT09O47y29Zg0uC9nNK7pdyzxiJ9FIRboAvQDLgb+bGZtChtoZnebWaqZpaanp3serFIlY9B5rXnzjm6kZ2Ryxcszmbpkm+fbFYk0izfvp/+wb/nf8p38qV87Xrm5CzWrxvkdSzzkZ1HYDEx1zh1yzu0CvgHOLGygc26Ucy7FOZeSnJwctoB9WyczaUhfWtZL4N635/PMlDRycvPCtn0RvzjneOu7DVzz71nk5Dr+c09P7up7qi4XRQE/i8IEoK+ZxZpZNaA7kOZjnkI1qlWV9+/pwc09mjHqm7XcMHoOOzOO+h1LxDMHM3MY8t4C/vzxEnq1qsvkIX3p0qy237EkTDxrGzCzccA5QJKZbQb+HxAH4Jwb6ZxLM7OpwCIgDxjtnCuyfdVP8bExPHVVBzo3q8Uj4xfTb+gMht/QmW4t6vgdTaRMLd9+gPvfns/63Yf4v4tP476zW1Kpks4OoomVt7bLlJQUl5qa6tv2l28/wH1vz2fjnsM8cmlb7uzTQqfUUiG8n7qJxycsIbFKHEMHdKJny7p+R5IyZGbznHMpJY2L6k80n4i2DWowYVBvLmhXj6cnpzHw3fkczFTbqpRfR7JyefiDhfz+w0V0blqbKUP6qiBEMX3q5ATUqBLHyJu6MOqbtTw3dTnLt2fwyk1daF0/0e9oIsdl9c6DDHxnPit3ZjDkvFY8cEEbYnS5KKrpTOEEmRn3nN2Sd+7qwYEjOVw5fCYTFmzxO5ZIqU1YsIUrX55B+sFMxt7ejd9ddJoKgqgonKyeLesyeUgf2jeswQPvLeCJiUvJylHbqkSuo9m5PPbfxTzw3gLaNazB5CF9OLtN+Fq9JbLp8lEZqF+jCuPu7sGzU5YzZuY6Fm3ex/AbO9OwZlW/o4n8xMbdh7n/3Xks2XKAe35xKg9ffBpxMXpvKD/Sq6GMxMVU4vHL2/PyDZ1Yvj2D/kNnMGv1Lr9jieSbumQ7/YZ9y8bdh3n1lhQeuaydCoL8jF4RZax/x1OYOKg3tatX5qbX5jDiq9Xk6ct7xEdZOXk8NWkZ9749jxZJ1Zk8pC8Xtq/vdyyJUCoKHmhVL5EJA3tz2RkN+fvUFdz91jz2H8n2O5ZEoS37jnDdqNm8NmMdt/Vqzgf39qRJnWp+x5IIpqLgkerxsQy7vhOP92/PVyt2csXLM0jbdsDvWBJFpi/fSb+h37Jqx0GG39CZJ644nfhYfVWmFE9FwUNmxh19WvDe3T04mp3L1SNm8tG8zX7HkgouJzePv09dzu1jv6dBjSpMHNSbfh0b+h1LygkVhTBIaV6HSYP7claTWjz0wUIe/e9iMnNy/Y4lFdDOA0e5cfQcRny1hgFdm/DxwN6cmpzgdywpR9SSGibJifG8fWd3/vn5SkZ+vYYlW/Yz4sbONK6t67tSNmat3sWQ937gUGYu//rVmVzTpbHfkaQc0plCGMXGVOKPl7bllZu7sC79EP2HzeDrld5/aZBUbLl5jpemreLG1+ZQq1plJgzqrYIgJ0xFwQcXn96AiYP70KBGFW57fS4vTVultlU5IbsPZnLb63N5YdpKrjzzFCYM7E0bzcElJ0FFwSctkqrz3/t7c/VZjXhh2krueON79h3O8juWlCPfr99Dv6EzmLNuD8/+8gxeuO4sqsfrirCcHBUFH1WtHMO/fn0mT1/VgVmrd9Nv6AwWb97vdyyJcHl5jle+XsOAUd8RH1eJ/97fi+u7NdX3ekiZUFHwmZlxU49mvH9vT5xzXPPvWYybu5Hy9uVHEh77Dmdx91upPPvpci5qX59PBvfh9FNq+h1LKhAVhQhxVpNaTBrSl+6n1uGR8Yv5/YeLOJqttlX50YJN++g3NNCc8MTl7RlxY2dqVInzO5ZUMCoKEaRO9cqMvb0bQ85vzQfzNvPLEbPYsPuQ37HEZ845xs5cx69GzgLg/Xt6cltvfQ2seENFIcLEVDJ+d2EbXr+tK1v2HaH/sBlMW7bD71jik4yj2Qx69wee+GQZv2idzOQhfejUtLbfsaQCU1GIUOe2rcekwX1oWqcad72Zyj8+W06u2lajyrKtB7h82AymLt3OHy9ty6u3pFCrWmW/Y0kFp6IQwZrUqcZH9/ViQNcmDJ++hlvHzGX3wUy/Y4nHnHO8N3cjV42YyZHsXMb9pgf3nt2SSvqqTAkDFYUIVyUuhr9d05G/X9ORuev30H/YDOZv3Ot3LPHI4awcHnp/IX8cv5huzesweUhfurWo43csiSIqCuXEr7s2Yfx9vYiNMa57ZTZvzl6vttUKZtWODK58eSb/XbCF317Qhjfu6EZSQrzfsSTKeFYUzGyMme00syUljOtqZrlmdq1XWSqKDo1qMmlQX/q2TubxCUv57X8WcDgrx+9YUgb++8Nmrnh5JnsPZ/H2nd154ILWxOhykfjAyzOFscAlxQ0wsxjgOeAzD3NUKDWrxTH6lhQevqgNExZu5arhM1mbftDvWHKCjmbn8sj4Rfz2Pws5o3FNJg/pS+9WSX7HkijmWVFwzn0D7Clh2GDgI2CnVzkqokqVjEHntebNO7qRnpHJFS/PZOqSbX7HkuO0btchrh4xi3FzN3H/OS15967u1K9Rxe9YEuV8u6dgZo2Aq4GRpRh7t5mlmllqerqmmj6mb+tkJg3pS8t6Cdz79nyemZJGTm6e37GkFKYs3sblw2awdd8RxtyWwu8vaUtsjG7xif/8fBW+CPzBOVfiXA7OuVHOuRTnXEpycnIYopUfjWpV5f17enBzj2aM+mYtN4yew86Mo37HkiJk5eTxxMSl3P/OfFrVS2DykD6c17a+37FE8vk5z24K8F7wo/pJwGVmluOc+9jHTOVSfGwMT13Vgc7NavHI+MX0GzqD4Td0VitjhNm05zCDxv3Awk37uKN3C/54aVsqx+rsQCKLb69I51wL51xz51xz4EPgfhWEk3N1p8Z8PLA3CfGxXP/qd4z+dq3aViPEl2k76D9sBmt3HmTkTZ15/PL2KggSkbxsSR0HzAZOM7PNZnanmd1rZvd6tU2Btg1qMGFQby5oV4+nJ6cx8N35HMxU26pfsnPzePbTNO58I5XGtasyaUgfLunQ0O9YIkWy8vZOMiUlxaWmpvodI+I55xj1zVqem7qc5knVeeWmLrTW1zSG1fb9Rxk8bj7fr9/Ljd2b8uf+7akSF+N3LIlSZjbPOZdS0jidv1ZQZsY9Z7fknbt6cOBIDlcOn8nEhVv9jhU1vl2VzmVDv2Xp1gO8NOAs/nr1GSoIUi6oKFRwPVvWZfKQPrRvWIMh437giYlLycpR26pXcvMcz3+xklvGzCUpoTITB/XhyrMa+R1LpNT0Ld9RoH6NKoy7uwfPTlnOmJnrWLR5H8Nv7EzDmlX9jlahpGdk8uB/fmDm6t1c07kxT111OtUq638xKV90TyHKTFq0ld9/uIiqcTEMu74TvTSlQqkczc4lPSOTXQczSc/IJP1gJrsyskg/eDT4eBardmSQmZPHU1d24Nddm/gdWeQnSntPQW9jokz/jqfQtkEi9749n5tem8P/XdyWe88+NSq/2jErJ4/dh35+cE/PKHjgD/yZcbTwDq7a1eJITownOTGeC9rX5zd9T6Vdwxph/peIlB0VhSjUql4iEwb25g8fLeK5qcuZv3Ev//zVmdSsWv6/BD43z7HnUNbPDuo/eZcfXN57OLvQvyOxSizJifEkJcTT7pQa/CIhcNBPDv6ZFPyzbkJl4jQ1hVQwunwUxZxzvD5zPc9MSaNR7aqMvKlLRL7Ldc6x73D2zw7y6T85yAcKwZ5DmRT2raVV42Ly39EnJ8STlFiZ5IQqwYN85fznkhLi1SUkFVJpLx+pKAip6/cw8N357D+SzV+vOoNrujT2fJvOOTIycwIH9CLfzQcO9LsPZZKd+/PXaeWYSoEDeWI8yccO7AnHfv/pu/rq8TopluimewpSainN6zBpcF8Gj5vPQx8sZP7GvTx+eXviY4//HfPhrJyfXKNPL3CNPvTyTWYhrbExlYykhMr5B/O2DRILPcgnJ8ZTo0psVN4LEfGSioIAkJwYz9t3duefn69k5NdrWLxlPyNu7Ezj2tXIzMnNf9de3DX69IxMDmX9fNJbM6hT7cdLNC2Sqhd5Gad2tcr6gnoRH+nykfzMZ0u38/D7C8nJc8TFGAeK6LxNKwW9AAAHDUlEQVSpWTWuwDX5KgUO8j++q6+XGE+d6pX1XQEiPtPlIzlhF5/egDaDExn51Rri4yoVeummbkLlE7q8JCKRTUVBCtUiqTrPXdvR7xgiEmY6pxcRkXwqCiIikk9FQURE8qkoiIhIPhUFERHJp6IgIiL5VBRERCSfioKIiOQrd9NcmFk6sOEEV08CdpVhnLISqbkgcrMp1/FRruNTEXM1c84llzSo3BWFk2FmqaWZ+yPcIjUXRG425To+ynV8ojmXLh+JiEg+FQUREckXbUVhlN8BihCpuSBysynX8VGu4xO1uaLqnoKIiBQv2s4URESkGBWmKJjZJWa2wsxWm9kfC3n+NjNLN7MFwZ+7Cjx3q5mtCv7cGkG5cgs8PjGcuYJjfm1my8xsqZm9W+Bx3/ZXCbl8219m9kKBba80s30FnvPz9VVcLj/3V1Mzm25mP5jZIjO7rMBzjwTXW2FmF0dCLjNrbmZHCuyvkWHO1czMvgxm+srMGhd4rmxfX865cv8DxABrgFOBysBCoH3ImNuAlwtZtw6wNvhn7eBybb9zBZ876OP+ag38cGxfAPUiZH8Vmsvv/RUyfjAwJhL2V1G5/N5fBK6N3xdcbg+sL7C8EIgHWgT/npgIyNUcWOLj/voAuDW4fB7wllevr4pyptANWO2cW+ucywLeA64s5boXA1845/Y45/YCXwCXREAuL5Um12+A4cF9gnNuZ/Bxv/dXUbm8dLz/Ha8HxgWX/d5fReXyUmlyOaBGcLkmsDW4fCXwnnMu0zm3Dlgd/Pv8zuWl0uRqD3wZXJ5e4Pkyf31VlKLQCNhU4PfNwcdCXRM8/frQzJoc57rhzgVQxcxSzew7M7uqjDKVNlcboI2ZzQxu/5LjWNePXODv/gICp/kE3uH+73jXDXMu8Hd/PQHcZGabgSkEzmJKu64fuQBaBC8rfW1mfcsoU2lzLQSuCS5fDSSaWd1SrntcKkpRsEIeC22r+gRo7pzrCEwD3jiOdf3IBdDUBT69eAPwopm1DGOuWAKXas4h8A5ztJnVKuW6fuQCf/fXMQOAD51zuSew7vE6mVzg7/66HhjrnGsMXAa8ZWaVSrmuH7m2EdhfnYDfAe+aWQ3KRmlyPQycbWY/AGcDW4CcUq57XCpKUdgMFHyH3ZiQ0z7n3G7nXGbw11eBLqVd16dcOOe2Bv9cC3wFdApXruCYCc657OBp/AoCB2Nf91cxufzeX8cM4KeXaPzeX0Xl8nt/3Qm8H9z+bKAKgXl9/N5fheYKXs7aHXx8HoF7AG3Clcs5t9U598tgUXos+Nj+Uv6bjo8XN07C/UPg3eNaAqfHx27UnB4ypmGB5auB79yPN2rWEbhJUzu4XCcCctUG4oPLScAqirmJ6EGuS4A3Cmx/E1A3AvZXUbl83V/BcacB6wl+/icSXl/F5PL79fUpcFtwuR2BA5kBp/PTG81rKbsbzSeTK/lYDgI3hLeE+XWfBFQKLv8VeNKr19dJ/4Mi5YfAqd5KAhX8seBjTwJXBJefBZYGd/h0oG2Bde8gcENrNXB7JOQCegGLg48vBu4Mcy4DngeWBbc/IEL2V6G5/N5fwd+fAP5WyLq+7a+icvm9vwjcOJ0Z3P4C4KIC6z4WXG8FcGkk5CJwPf/Y/6fzgcvDnOtaAoV7JTCaYEH34vWlTzSLiEi+inJPQUREyoCKgoiI5FNREBGRfCoKIiKST0VBRETyqShI1DCzWmZ2/wmuO6XAJ6dPZP2DJTx/wtlEypKKgkSTWkChB14ziyluRefcZc65fcWNOUlFZhMJJxUFiSZ/A1oG58P/h5mdE5w7/10CH+DCzD42s3nB72q4+9iKZrbezJKC8+qnmdmrwTGfm1nV0A2ZWQszm21m35vZUwUeTwjOiz/fzBab2bHZLkOzFTVOxFP68JpEDTNrDkxyznUI/n4OMBno4ALzKGFmdZxze4IH+u+Bs51zu81sPZACJBD45GiKc26Bmb0PTHTOvR2yrYkEJqB708wGAs855xLMLBao5pw7YGZJwHcE5m5qFpKt0HFO/8OKx3SmINFu7rGCEDTEzBYSOAg3ITjZXoh1zrkFweV5BL6AJVRvfpyA7q0CjxvwjJktIjArbiOgfiHrl3acSJmK9TuAiM8OHVsInjlcAPR0zh02s68IzJIZKrPAci7ws8tHQYW9q7+RwORqXZxz2cEzkMK2UdpxImVKZwoSTTKAxGKerwnsDRaEtkCPk9jWTALTVUPgAF9wGzuDB/pzCVw2KixbUeNEPKWiIFHDBebDn2lmS8zsH4UMmQrEBi/ZPEXgEtKJegAYaGbfEzjAH/MOkGJmqQSKxfIishU6TsRrutEsIiL5dKYgIiL5VBRERCSfioKIiORTURARkXwqCiIikk9FQURE8qkoiIhIPhUFERHJ9/8BPuJsqUnRKaQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "usercf = UserCF()\n",
    "train_range = [0.9, 0.8, 0.7, 0.6, 0.5]\n",
    "mae_rmse = []\n",
    "pre_rec = []\n",
    "for i in train_range:\n",
    "    usercf.load_data(train_size=i, normalize=False) # 修改\n",
    "    usercf.users_similarity(normal=False)\n",
    "\n",
    "    print('训练集：', i)\n",
    "\n",
    "    mae, rmse = usercf.validate(K=26, N=10)\n",
    "    print(mae, rmse)\n",
    "    mae_rmse.append((mae, rmse))\n",
    "\n",
    "    pre, rec = usercf.evaluate(K=26, N=10)\n",
    "    print(pre, rec)\n",
    "    pre_rec.append((pre, rec))\n",
    "\n",
    "x = train_range\n",
    "mae = [i[0] for i in mae_rmse]\n",
    "rmse = [i[1] for i in mae_rmse]\n",
    "pre = [i[0] for i in pre_rec]\n",
    "rec = [i[1] for i in pre_rec]\n",
    "\n",
    "plt.plot(x, mae)\n",
    "plt.xlabel('train data')\n",
    "plt.ylabel('MAE')\n",
    "plt.show()\n",
    "\n",
    "plt.plot(x, rmse)\n",
    "plt.xlabel('train data')\n",
    "plt.ylabel('RMSE')\n",
    "plt.show()\n",
    "\n",
    "plt.plot(x, pre)\n",
    "plt.xlabel('train data')\n",
    "plt.ylabel('precision')\n",
    "plt.show()\n",
    "\n",
    "plt.plot(x, rec)\n",
    "plt.xlabel('train data')\n",
    "plt.ylabel('recall')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>训练集大小</th>\n",
       "      <th>MAE</th>\n",
       "      <th>RMSE</th>\n",
       "      <th>precision</th>\n",
       "      <th>recall</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>90%</td>\n",
       "      <td>2.507308</td>\n",
       "      <td>2.994917</td>\n",
       "      <td>0.146643</td>\n",
       "      <td>0.137554</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>80%</td>\n",
       "      <td>1.694547</td>\n",
       "      <td>2.100710</td>\n",
       "      <td>0.243434</td>\n",
       "      <td>0.119841</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>70%</td>\n",
       "      <td>1.341888</td>\n",
       "      <td>1.675780</td>\n",
       "      <td>0.306711</td>\n",
       "      <td>0.100994</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60%</td>\n",
       "      <td>1.298887</td>\n",
       "      <td>1.598805</td>\n",
       "      <td>0.362542</td>\n",
       "      <td>0.089839</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>50%</td>\n",
       "      <td>1.659402</td>\n",
       "      <td>1.930200</td>\n",
       "      <td>0.374247</td>\n",
       "      <td>0.074189</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  训练集大小       MAE      RMSE  precision    recall\n",
       "0   90%  2.507308  2.994917   0.146643  0.137554\n",
       "1   80%  1.694547  2.100710   0.243434  0.119841\n",
       "2   70%  1.341888  1.675780   0.306711  0.100994\n",
       "3   60%  1.298887  1.598805   0.362542  0.089839\n",
       "4   50%  1.659402  1.930200   0.374247  0.074189"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d = {\n",
    "    '训练集大小': [format(x, '.0%') for x in train_range], \n",
    "    'MAE': [i[0] for i in mae_rmse], \n",
    "    'RMSE': [i[1] for i in mae_rmse], \n",
    "    'precision': [i[0] for i in pre_rec], \n",
    "    'recall': [i[1] for i in pre_rec]\n",
    "}\n",
    "\n",
    "pd.DataFrame(data=d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
